package com.jinke.api.modules.third.ezeeship.model.response;

import com.jinke.api.modules.app.response.CreateLabel2Response;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;

@Data
public class CreateLabelResponse {
    private String result;
    private String errorCode;
    private String message;
    private String zhMessage;
    private String errorType;
    private Data data;

    // Getter and Setter methods
    @lombok.Data
    public static class Data {
        @ApiModelProperty(value = "32位UUID，此标签对象的主要和唯一标识符")
        private String objectId;
        private String orderid;
        private String od;
        private int status;
        @ApiModelProperty(value = "一组trackingNumber。如果货件中有多个包裹（标签），您将收到一个货件的多个追踪编号;追踪编号的数量等于包裹的数量。如果货件中有一个包裹（标签），您将仅获得一个追踪编号")
        private List<String> trackingNumber;
        @ApiModelProperty(value = "trackURL数组，返回的trackingurl的个数等于包的个数。如果有一个包，则会返回一个trackingurl")
        private List<String> trackingUrl;
        @ApiModelProperty(value = "用于附加和打印所有标签和发票的URL。我们建议使用此选项下载标签。")
        private String pdfUrl;
        @ApiModelProperty(value = "标签的所有URL。URL的数量将与包的数量相同")
        private List<String> labelUrl;
        @ApiModelProperty(value = "将收到国际货件的商业发票url")
        private List<String> invoiceUrl;
        @ApiModelProperty(value = "一次装运的估计成本")
        private BigDecimal rate;
        @ApiModelProperty(value = "创建时间")
        private LocalDateTime createTime;
        @ApiModelProperty(value = "装运的实际成本（当上传ezeship发票时，此字段值将更新）。")
        private BigDecimal billedAmount;
        private BigDecimal originFee;

        @ApiModelProperty(value = "费用详细信息（在发票上传之前使用估计成本;此字段值将在发票上传后更新）")
        private CreateLabel2Response.FeeDetail feeDetail;


        // Getter and Setter methods
    }

    @lombok.Data
    public static class OriginFeeDetail {
        private int dryIce;
        private int cod;
        private int insurance;
        private double fuel;
        private double baseRate;
    }

}
